Spring中@Autowired和@Resource的区别: 您所在的位置:网站首页 autowired 与 resource 的区别 Spring中@Autowired和@Resource的区别:

Spring中@Autowired和@Resource的区别:

2023-07-08 21:11| 来源: 网络整理| 查看: 265

文章目录 一、@Autowired二、@Resource三、@Autowired和@Resource的区别:

一、@Autowired

@Autowired 这个注解呢,是由 Spring 提供的,它可以用来对构造方法、成员变量以及方法参数上进行标注,能够根据对象类型完成自动注入。

public class Service { //构造方法注入 @Autowired public Service (Service service) { this.service = service; } //成员变量注入 @Autowired private Service service; //方法参数注入 @Autowired public void setService (Service service) {this.service = service; } } 二、@Resource

在这里插入图片描述 它是由 JDK 提供的,遵循 JSR-250 规范,是 JDK1.6 及以上加入的新特性。作为 Java 的标准,它的作用和@Autowired无区别。与@Autowired 不同的是它可以适用于所有的 Java框架,而@Autowired 只适用于 Spring。简单的理解@Resource能够支持对象类型注入,也能够支持对象名称注入。

三、@Autowired和@Resource的区别:

1、@Resource是JDK原生的注解,@Autowired是Spring2.5 引入的注解

2、@Resource有两个属性name和type。Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。如果既不指定name也不指定type属性,这时将通过反射机制使用byName自动注入策略。

@Autowired只根据type进行注入,不会去匹配name。如果涉及到type无法辨别注入对象时,那需要依赖@Qualifier或@Primary注解一起来修饰。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有